package co.edu.javeriana.konigsberg.xavier.servicio;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import co.edu.javeriana.konigsberg.xavier.dao.desc.ConferencistaDAOLocal;
import co.edu.javeriana.konigsberg.xavier.dto.ConferencistaDTO;
import co.edu.javeriana.konigsberg.xavier.entidad.Conferencista;

@Stateless
public class ConferencistaServicio implements ConferencistaServicioLocal,
		ConferencistaServicioRemote {

	@EJB
	private ConferencistaDAOLocal conferencistaDAOLocal;
	
	@Override
	public void guardarConferencista(ConferencistaDTO conferencistaDTO) {
		Conferencista conferencista = getEntity(conferencistaDTO);
		conferencistaDAOLocal.guardar(conferencista);
	}

	private Conferencista getEntity(ConferencistaDTO conferencistaDTO) {
		Conferencista conferencista = new Conferencista();
		conferencista.setCelular(conferencistaDTO.getCelular());
		conferencista.setCorreoElectronico(conferencistaDTO.getCorreoElectronico());
		conferencista.setIdConferencista(conferencistaDTO.getIdConferencista());
		conferencista.setIdFacultad(conferencistaDTO.getIdFacultad());
		conferencista.setJesuita(conferencistaDTO.isJesuita());
		conferencista.setNumeroDocumento(conferencistaDTO.getNumeroDocumento());
		conferencista.setPrimerApellido(conferencistaDTO.getPrimerApellido());
		conferencista.setPrimerNombre(conferencistaDTO.getPrimerNombre());
		conferencista.setSegundoApellido(conferencistaDTO.getSegundoApellido());
		conferencista.setSegundoNombre(conferencistaDTO.getSegundoNombre());
		return conferencista;
	}

	public ConferencistaDTO getDTO(Object confer) {
		Conferencista conferencista = (Conferencista)confer;
		ConferencistaDTO conferencistaDTO = new ConferencistaDTO();
		conferencistaDTO.setCelular(conferencista.getCelular());
		conferencistaDTO.setCorreoElectronico(conferencista.getCorreoElectronico());
		conferencistaDTO.setIdConferencista(conferencista.getIdConferencista());
		conferencistaDTO.setIdFacultad(conferencista.getIdFacultad());
		conferencistaDTO.setJesuita(conferencista.getJesuita());
		conferencistaDTO.setNumeroDocumento(conferencista.getNumeroDocumento());
		conferencistaDTO.setPrimerApellido(conferencista.getPrimerApellido());
		conferencistaDTO.setPrimerNombre(conferencista.getPrimerNombre());
		conferencistaDTO.setSegundoApellido(conferencista.getSegundoApellido());
		conferencistaDTO.setSegundoNombre(conferencista.getSegundoNombre());
		return conferencistaDTO;
	}
	
	@Override
	public List<ConferencistaDTO> obtenerListaConferencistas() {
		List<Conferencista> conferencistas = conferencistaDAOLocal.obtenerLista();
		List<ConferencistaDTO> conferencistaDTOs = new ArrayList<ConferencistaDTO>();
		for (Conferencista conferencista : conferencistas) {
			ConferencistaDTO conferencistaDTO = getDTO(conferencista);
			conferencistaDTOs.add(conferencistaDTO);
		}
		return conferencistaDTOs;
	}

}
